package chapter03;

public class Test06_tranform {
    public static void main(String[] args) {
        //类型转换 子类对象可以自动转换为父类对象
        Student s = new Student();
        Person p = s;
        p.info();
        //子类对象转换成父类对象的时候 子类独有的方法和属性丢失
        //再想用子类的方法 将父类对象转换成子类对象
        Student s1 = (Student) p;
        s1.shout();
        //instanceof 为了判断对象是否是该类派生出来的
        System.out.println(s instanceof Student);
        //子类可以是父类 学生是属于人的
        System.out.println(s instanceof Person);
        //父类不一定是子类
        Person p2 = new Person();
        System.out.println(p2 instanceof Student);
        //如果父类对象是子类转型来的 就是子类
        System.out.println(p instanceof Student);
        //object的toString方法
        System.out.println(p.toString());
    }
}
class Person{
    void info(){
        System.out.println("我是一个人");
    }
}
class Student extends Person{
    void info(){
        System.out.println("我是一名学生");
    }
    void shout(){
        System.out.println("放假");
    }
}